/** @file
@brief Provides vectors, fixed-length arrays. */
#ifndef PRYN_VECTOR_H
#define PRYN_VECTOR_H

/// Typedef a vector structure for later declaration.
#define PrynVectorTypedef(NAME) typedef struct NAME NAME

/// Declare a vector structure. @e NAME is the name of the structure, @e TYPE is the type of each element, and @e DIMENSIONS is the number of elements.
#define PrynVectorDeclaration(NAME, TYPE, DIMENSIONS) \
	struct NAME \
	{ \
		TYPE data [DIMENSIONS]; \
	}

PrynVectorTypedef (PrynVector);

/// Two-dimensional integer vector.
PrynVectorDeclaration (PrynVector, int, 2);

#endif /* PRYN_VECTOR_H */
